﻿namespace HEFramework
{
    public enum eAttribute
    {
        HP,
        HP_PCT,
        X_HP,
        X_HP_PCT,
        MP,
        MP_PCT,
        X_MP,
        X_MP_PCT,
        P_ATK,
        P_ATK_PCT,
        M_ATK,
        M_ATK_PCT,
        LV,
        RANK,
    }

    public enum eReward
    {
        G = 100,
        G_R,
        K,
        K_R,
        EXP,
        EXP_R,
        P_ATK,
        P_ATK_PCT,
        P_DEF,
        P_DEF_PCT,
        M_DEF,
        X_HP,
        X_HP_PCT,
        X_MP,
        X_MP_PCT,
        REC_HP,
        REC_MP,
        P_ATK_SP,
        P_ATK_SP_PCT,
        M_ATK_SP,
        P_CRT,
        M_CRT,
        P_CRT_ADD,
        M_CRT_ADD,
        DOG,
        G_S,
        K_S,
        EXP_S,
        M_ATK,
        M_ATK_PCT,
        LV,
        RANK,
        G_PCT,
        K_PCT,
        REC_HP_PCT,
        REC_MP_PCT,
        HP,
        MP,
        HP_PCT,
        MP_PCT,
        P_VP,
        M_VP,
        TRT,
        ITEM = 999,
    }

    public enum eATKState
    {
        Wait,
        Before,
        Empty,
        After,
    }

    public enum eQualityType
    {
        N,
        R,
        SR,
        SSR,
        UR,
    }

    public enum eElement
    {
        Gold = 100,
        Wood,
        Water,
        Fire,
        Soil,
        Max,
    }

    public enum eGlobalSetting
    {
        Monster_Generate_Seconds = 1000,
        Boss_Generate_Rounds,
        Round_Seconds,
        Monster_Generate_RAG,
        Player_Start_G,
        Player_Start_G_S,
        Summon_Hero_G,
        TeamPeople_MaxNum,
        Hero_Generate_RAG,
        Hero_Generate_RAG_Offset,
        Legacy_Limit,
    }

    public enum eAlertType
    {
        Normal,
        Nearest,
        TRTest,
        Composite,
    }

    public enum eAttributeType
    {
        Normal,
        Hero,
        Build,
    }

    public enum eATKEffectType
    {
        Point,
        Track,
        Curve,
    }

    public enum ePowerType
    {
        /// <summary>
        /// 攻击
        /// </summary>
        Physics,

        /// <summary>
        /// 法术
        /// </summary>
        Magic,

        /// <summary>
        /// 无
        /// </summary>
        None,
    }

    public enum eSkillType
    {
        Passive,
        Active,
        Both,
    }

    public enum eSkillTriggerType
    {
        OnAttack,
        OnAdd,
        OnUpdate,
    }

    public enum eSkillEffectAreaType
    {
        Single,
        Area,
    }

    public enum eSkillEffectTargetType
    {
        Self,
        Team,
        Friend,
        Enemy,
        TeamNoSelf,
        All,
    }

    public enum eSkillEffectRangeType
    {
        Circle,
        Cone,
    }

    public enum eSkillEffectConditionType
    {
        None = -1,
        HP,
        HP_PCT,
        X_HP,
        X_HP_PCT,
        MP,
        MP_PCT,
        X_MP,
        X_MP_PCT,
        P_ATK,
        P_ATK_PCT,
        M_ATK,
        M_ATK_PCT,
        LV,
        RANK,

        Num = 100,
        StackNum,
        ExecuteNum,
        Random,
    }

    public enum eSkillEffectJudgenType
    {
        None = -1,
        Upward,
        Under,
        Equal,
        UpwardEqual,
        UnderEqual,
    }

    public enum eSkillEffectAType
    {
        Normal = 100,
        StackChange = 200,
        StackNum = 201,
        Count = 300,
        CountAttribute,
    }

    public enum eSkillEffectBType
    {
        P_ATK_Damge = 100,
        M_ATK_Damge,
        Normal_Rewards,
        None,
        Excute_Effect,
        Remove_Effect,
        Destroy_Effect,
        P_ATK_Health_HP,
        M_ATK_Health_HP,
        P_ATK_Health_MP,
        M_ATK_Health_MP,
        Line_Projectile_Item,
    }

    public enum eSkillErrorCode
    {
        None,
        Lack_HP,
        Lack_MP,
        Lack_RAG,
        Lack_CD,
        WrongTarget,
        UnLock,
        System,
    }

    public enum eAISkillType
    {
        None = -1,
        Self,
        Alert,
        Condition,
    }

    public enum eAISkillConditionAType
    {
        Self,
        Team,
        Friend,
        Enemy,
        TeamNoSelf,
    }

    public enum eAISkillConditionBType
    {
        Normal,
        Hero,
        Build,
    }

    public enum eAISkillConditionCType
    {
        Distance,
        HP,
        MP,
        P_ATK,
        M_ATK,
        HP_PCT,
        MP_PCT,
    }

    public enum eAISkillConditionDType
    {
        Min,
        Max,
    }


    public enum eTrialMonsterGenerateType
    {
        Random,
        Group,
        Horn,
        Horizontal,
        Vertical,
    }

    public enum eTrialState
    {
        Ready,
        Challenging,
        Cooling,
        End,
    }

    public enum eSummonErrorCode
    {
        None,
        OutLimit,
        System,
    }

    public enum eLegacyError
    {
        None,
        OutLimit,
        System,
    }
}